package com.iakuil.app.repository.base;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;

import java.util.Collection;
import java.util.Map;

/**
 * MyBatis Mapper基类
 *
 * <p>仅支持MySQL 5.7及以上版本
 *
 * @author Kai
 * @date 2021/6/24 9:50
 **/
public interface CrudMapper<T> extends BaseMapper<T> {
    /**
     * 批量插入
     *
     * <p>全字段更新，不会忽略null值。
     * <p>仅适用于MySQL。
     *
     * @param entityList 实体列表
     * @return 影响行数
     */
    Integer insertBatchSomeColumn(Collection<T> entityList);

    @Override
    default <P extends IPage<T>> P selectPage(P page, Wrapper<T> queryWrapper) {
        throw new UnsupportedOperationException("不支持的方法!");
    }

    @Override
    default <P extends IPage<Map<String, Object>>> P selectMapsPage(P page, Wrapper<T> queryWrapper) {
        throw new UnsupportedOperationException("不支持的方法!");
    }
}
